package com.whli.jee.system.dao;

import com.whli.jee.common.web.dao.IBaseDao;
import com.whli.jee.common.web.entity.BaseTree;
import com.whli.jee.system.entity.SysMenu;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 *
 * @author whli
 * @version 1.0
 * @since 1.0
 * */
@Repository
public interface ISysMenuDao extends IBaseDao<SysMenu> {


    /**
     * 根据父级Href查询按钮
     * @param parentUrl
     * @return
     */
    List<SysMenu> listButtonsByParentUrl(@Param("parentUrl") String parentUrl);

    /**
     * 根据登录用户查询按钮
     * @param userId
     * @param parentUrl
     * @return
     */
    List<SysMenu> listButtonsByUserAndParentAndOffice(@Param("userId") String userId, @Param("parentUrl") String parentUrl,@Param("officeId") String officeId);

    /**
     * 根据父ID查询菜单
     * @return
     */
    List<SysMenu> listByParentId(@Param("parentId") String parentId);

    /**
     * 根据父ID及排序查询区域
     * @param entity
     * @return
     */
    SysMenu getByParentIdAndSort(@Param("entity") SysMenu entity);

    /**
     * 依据父级查询除按钮外的所有菜单
     * @return
     */
    List<SysMenu> listByNotButton(@Param("parentId") String parentId);

    /**
     * 根据用户、父菜单、组织查询菜单
     * @param userId
     * @param parentId
     * @param officeId
     * @return
     */
    List<SysMenu> listByUserAndOfficeAndParent(@Param("userId") String userId,@Param("parentId") String parentId,@Param("officeId") String officeId);

    /**
     * 根据parentId以树形结构展示菜单
     * @param parentId
     * @return
     */
    List<BaseTree> listMenuTrees(@Param("parentId") String parentId);
}
